package com.framework.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.framework.system.entity.dto.SysConfigAddDTO;
import com.framework.system.entity.dto.SysConfigQueryDTO;
import com.framework.system.entity.dto.SysConfigUpdateDTO;
import com.framework.system.entity.vo.SysConfigListVO;
import com.framework.system.entity.vo.SysConfigVO;

import java.util.List;

/**
 * <p>
 * 系统配置 服务类
 * </p>
 *
 * @author Kevin
 * @since 2021-06-23
 */
public interface ISysConfigService {

    /**
     * 分页查询系统配置
     *
     * @param reqPage
     * @param req
     * @return
     */
    Page<SysConfigListVO> selectSysConfigWithPage(Page reqPage, SysConfigQueryDTO req);

    /**
     * 查询列表系统配置
     *
     * @param req
     * @return
     */
    List<SysConfigListVO> selectSysConfigWithList(SysConfigQueryDTO req);

    /**
     * 新增系统配置
     *
     * @param req
     */
    void addSysConfig(SysConfigAddDTO req);

    /**
     * 修改系统配置
     *
     * @param req
     */
    void updateSysConfig(SysConfigUpdateDTO req);

    /**
     * 删除系统配置
     *
     * @param ids
     */
    void removeSysConfig(String ids);

    /**
     * 查看系统配置
     *
     * @param id
     * @return
     */
    SysConfigVO getSysConfig(String id);

    /**
     * 根据参数键名获取参数键值
     *
     * @param key
     * @return
     */
    String getConfigValueByKey(String key);

    /**
     * 清除系统配置所有缓存
     */
    void clearSysConfigAllCache();

}
